/*
 * Copyright (c) Huawei Technologies Co., Ltd. 2018-2018. All rights reserved.
 * Description: Huawei safe print function define
 *
 * Huawei(R) HiNIC PCI Express Network Controller UEFI Driver.
 * This driver is only usable in the EFI Pre-boot execution environment.
 * All rights reserved.
 * Author	 :
 * Create	 : 2018/12/10
 */
#ifndef HW_SAFE_STRING_H
#define HW_SAFE_STRING_H

UINTN AsciiStrnLenS(
    CONST CHAR8 *cString,
    UINTN iMaxSize);

EFI_STATUS AsciiStrCpyS(
    CHAR8 *strDest,
    UINTN destMax,
    const CHAR8 *strSrc);

EFI_STATUS AsciiStrnCpyS(
    CHAR8 *strDest,
    UINTN destMax,
    const CHAR8 *strSrc,
    UINTN count);

EFI_STATUS AsciiStrCatS(
    CHAR8 *strDest,
    UINTN destMax,
    const CHAR8 *strSrc);

EFI_STATUS AsciiStrnCatS(
    CHAR8 *strDest,
    UINTN destMax,
    const CHAR8 *strSrc,
    UINTN count);

UINTN StrnLenS(
    CONST CHAR16 *cString,
    UINTN iMaxSize);

EFI_STATUS StrCpyS(
    CHAR16 *strDest,
    UINTN destMax,
    const CHAR16 *strSrc);

EFI_STATUS StrnCpyS(
    CHAR16 *strDest,
    UINTN destMax,
    const CHAR16 *strSrc,
    UINTN count);

EFI_STATUS StrCatS(
    CHAR16 *strDest,
    UINTN destMax,
    const CHAR16 *strSrc);

EFI_STATUS StrnCatS(
    CHAR16 *strDest,
    UINTN destMax,
    const CHAR16 *strSrc,
    UINTN count);

#endif
